/*******************************************************************************
* Copyright (c) 2002, 2008 Innoopract Informationssysteme GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
******************************************************************************/
package org.eclipse.rap.ui.internal;
import org.eclipse.core.commands.common.EventManager;
import org.eclipse.rwt.SessionSingletonBase;
public class SessionSingletonEventManager extends SessionSingletonBase {
/*
* As Workbench needs to inherit from EventManager AND SessionSingleton
* we introduced a new layer in between to fake the methods.
* As EventManager is abstract and has final methods, we use methodE()
* to delegate to the original
*/
private final class EventManagerExtension extends EventManager {
public synchronized final void addListenerObjectE(final Object listener) {
addListenerObject( listener );
}
public synchronized final void clearListenersE() {
clearListeners();
}
public final Object[] getListenersE() {
return getListeners();
}
public final boolean isListenerAttachedE() {
return isListenerAttached();
}
public synchronized final void removeListenerObjectE(final Object listener) {
removeListenerObject( listener );
}
}
private EventManagerExtension manager;
public SessionSingletonEventManager() {
manager = new EventManagerExtension();
}
protected synchronized final void addListenerObject(final Object listener) {
manager.addListenerObjectE( listener );
}
protected synchronized final void clearListeners() {
manager.clearListenersE();
}
protected final Object[] getListeners() {
return manager.getListenersE();
}
protected final boolean isListenerAttached() {
return manager.isListenerAttachedE();
}
protected synchronized final void removeListenerObject(final Object listener) {
manager.removeListenerObjectE( listener );
}
}